﻿<!DOCTYPE HTML>
<html lang="zh">
<head>
<title>托盘提示 - 语法 &amp; 使用 | AutoHotkey v2</title>
<meta name="description" content="The 托盘提示 function creates a balloon message window near the tray icon. On Windows 10, a toast notification may be shown instead." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>托盘提示</h1>

<p>在托盘图标附近创建气球提示窗口. 在 Windows 10 中, 可能会显示 toast 通知来代替.</p>

<pre class="Syntax"><span class="func">托盘提示</span> <span class="optional">Text, Title, Options</span></pre>
<h2 id="Parameters">参数</h2>
<dl>

  <dt>Text</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>要显示的消息. 仅显示前 265 个字符.</p>
    <p>可以使用回车(`r) 或换行(`n) 来创建多行文本. 例如: <code>Line1`nLine2</code>.</p>
    <p>如果 <em>Text</em> 较长, 可以通过<a href="../Scripts.htm#continuation">延续片段</a>的方法将其分解成较短的几行, 这样可以增加可读性和可维护性.</p>
    <p>可以通过留空 <em>Text</em> 来显示只有标题的窗口.</p>
  </dd>

  <dt>Title</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a></p>
    <p>窗口的标题. 仅显示前 73 个字符.</p>
    <p>如果 <em>Title</em> 为空, 标题行将完全从窗口中删除, 这会让它垂直高度变短.</p>
  </dd>

  <dt>Options</dt>
  <dd>
    <p>类型: <a href="../Concepts.htm#strings">字符串</a>或<a href="../Concepts.htm#numbers">整数</a></p>
    <p>可以是一个整数值(由加法或按位或的组合), 也可以是一个由至少一个空格或制表符分隔的不区分大小写的零或多个选项字符串. 字符串中还可以包含一个或多个数字选项.</p>
    <table class="info">
      <tr>
        <th style="white-space: nowrap">字符串</th>
        <th style="white-space: nowrap">十进制值</th>
        <th style="white-space: nowrap">十六进制值</th>
        <th>描述</th>
      </tr>
      <tr>
        <td>Iconi</td>
        <td>1</td>
        <td>0x1</td>
        <td>显示一个信息图标.</td>
      </tr>
      <tr>
        <td>Icon!</td>
        <td>2</td>
        <td>0x2</td>
        <td>显示一个警告图标.</td>
      </tr>
      <tr>
        <td>Iconx</td>
        <td>3</td>
        <td>0x3</td>
        <td>显示一个错误图标.</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>4</td>
        <td>0x4</td>
        <td>显示当前<a href="TraySetIcon.htm">托盘图标</a>. 使用 0x24 显示大托盘图标. 在 Windows 10 中, 即使省略了这个标志, 小托盘图标也通常会显示, 并且指定这个标志可能会导致程序的名称显示在通知中.</td>
      </tr>
      <tr>
        <td>Mute</td>
        <td>16</td>
        <td>0x10</td>
        <td>不播放通知音.</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>32</td>
        <td>0x20</td>
        <td>使用大图标.</td>
      </tr>
    </table>
    <p>如果省略, 则默认为 0, 即无图标. 如果省略 <em>Title</em>, 气球窗口也不会显示图标(这不适用于 Windows 10 的 toast 通知).</p>
    </dd>

</dl>

<h2 id="To_Hide_the_Window">隐藏窗口</h2>
<p>要隐藏 托盘提示 气球窗口, 同时省略 <em>Text</em> 和 <em>Title</em>. 例如:</p>
<pre>托盘提示</pre>
<p>要隐藏 Windows 10 的 toast 通知, 临时移除托盘图标. 例如:</p>
<pre>托盘提示 "#1", "This is 托盘提示 #1"
等待 3000   <em>; 让它显示 3 秒钟.</em>
HideTrayTip
托盘提示 "#2", "This is the second notification."
等待 3000

<em id="Hide">; 将此函数复制到脚本中使用.</em>
HideTrayTip() {
    托盘提示  <em>; 尝试以普通的方式隐藏它.</em>
    如果 截取字符串(内_系统版本号,1,3) = "10." {
        内_隐藏图标 := true
        等待 200  <em>; 可能有必要调整 等待 的时间.</em>
        内_隐藏图标 := false
    }
}
</pre>
<p>根据至少一份报告, 这可能并不总是有效的.</p>

<h2 id="Remarks">备注</h2>
<p>在 Windows 10 中, 托盘提示窗口通常是这样的:</p>
<img src="../static/dlg_traytip.png" alt="TrayTip" />
<p id="Windows10"><strong>Windows 10</strong> 默认以 toast 通知替换气球提示窗口(这能被重置通过主策略). 托盘提示 多次调用通常会导致多个通知被放置在一个"队列"而不是每个通知取代最近的那个.</p>
<p>如果脚本没有托盘图标(使用 <a href="_NoTrayIcon.htm">#无托盘图标</a> 或 <a href="../Variables.htm#IconHidden">内_隐藏图标 := true</a>), 则 托盘提示 没有效果. 同样地, 如果下列的 REG_DWORD 值存在且被设置为 0, 则 托盘提示 没有效果:</p>
<pre>HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced &gt;&gt; EnableBalloonTips</pre>
<p>相关提示, 每当用户把鼠标悬停在脚本托盘图标上时会显示工具提示. 此工具提示的内容可以使用这样的方法改变: <code><a href="../Variables.htm#IconTip">内_图标提示</a> := "My New Text"</code>.</p>

<h2 id="Related">相关</h2>
<p><a href="ToolTip.htm">工具提示</a>, <a href="SetTimer.htm">设置定时器</a>, <a href="../objects/Menu.htm">Menu 对象</a>, <a href="MsgBox.htm">信息框</a>, <a href="InputBox.htm">输入框</a>, <a href="FileSelect.htm">文件选择框</a>, <a href="DirSelect.htm">目录选择框</a></p>

<h2 id="Examples">示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>托盘提示 "Multiline`nText", "My Title", "Iconi Mute"</pre>
</div>


<div class="ex" id="ExDisplayTime">
<p><a href="#ExDisplayTime">#2</a>: 要更精确的控制显示的时间, 没有使用 等待(它停止了当前线程):</p>
<pre>#持续运行
托盘提示 "This will be displayed 遍历 5 seconds.", "Timed TrayTip"
设置定时器 "HideTrayTip", -5000

HideTrayTip() {  <em>; 注意: 对于 Windows 10, 用<a href="#Hide">上面</a>定义的函数替换这个函数.</em>
    托盘提示
}
</pre>
</div>

<div class="ex" id="ExPermanent">
<p><a href="#ExPermanent">#3</a>: 要让托盘提示永久显示, 请使用计时器进行周期性的刷新. 注意: 由于<a href="#Windows10">上述原因</a>, 这可能无法很好地在 Windows 10 上运行.</p>
<pre>#持续运行
设置定时器 "RefreshTrayTip", 1000
RefreshTrayTip  <em>; 调用一次来让它立即开始.</em>

RefreshTrayTip()
{
    托盘提示 "This is a more permanent 托盘提示.", "Refreshed TrayTip", "Mute"
}</pre>
</div>

</body>
</html>